package com.gyj.ssm.Utils.mybatis;

/**
 * Created by Gao on 2018/5/9.
 */

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 生成mybatis逆向工程的文件，生成时要注意，在没有修改数据库字段的情况下，多次执行会生成重复的mapper以及mapper.xml文件等，
 * 但是当修改数据库的字段后再执行会在原有的基础上改变mapper等文件
 */
public class MybatisGen {
    public static void generator() throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //项目根路径不要有中文,我的有中文,所以使用绝对路径
        File configFile = new File("D:\\projects\\SSM\\src\\main\\java\\com\\gyj\\ssm\\Utils\\mybatis\\build-mybatis.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }

    public static void main(String[] args) {
        try {
            generator();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
